﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using ProjectHopur23.Models;

namespace ProjectHopur23.Repositories
{
	public interface IRepository
    {
        #region Properties
        IEnumerable<Game> GetAllGames();
		IEnumerable<ActiveGame> GetAllActiveGames();
		IEnumerable<Player> GetAllPlayers();
		IEnumerable<UserProfile> GetAllUsers();
		IEnumerable<TicTacToeState> GetAllTicTacToeStates();
		IEnumerable<LudoState> GetAllLudoStates();
		IEnumerable<Invite> GetAllInvites();
		IEnumerable<DieValue> GetAllDieValues();
		IEnumerable<Comment> GetAllComments();
        #endregion

        #region Functions
        void AddGame(Game g);
		void AddActiveGame(ActiveGame ag);
		void AddPlayer(Player p);
		void AddTicTacToeState(TicTacToeState t);
		void AddLudoState(LudoState l);
		void AddInvite(Invite i);
		//Needs to be added to the TestRepository
		void AddDieValue(DieValue d);
		void AddComment(Comment c);
		void Save();
        #endregion
    }
}
